Systems and methods for a hand hygiene compliance checking system with explainable feedback

ABSTRACT

Various embodiments of a system and associated method for evaluating handwashing protocol compliance are disclosed herein. The system considers temporal combinations of segments of a test handwashing routine to recognize components of a compliant handwashing routine within the test handwashing routine. The system determines whether the components of the handwashing routine have been adequately performed and provides actionable feedback to a user to improve adherence to handwashing routine guidelines.

CROSS-REFERENCE TO RELATED APPLICATIONS

This is a non-provisional application that claims benefit to U.S.Provisional Patent Application Ser. No. 63/041,746 filed 19 Jun. 2020,which is herein incorporated by reference in its entirety.

FIELD

The present disclosure generally relates to hygiene compliance system,and in particular to a system and associated method for monitoringhandwashing hygiene practices and providing explainable feedback.

BACKGROUND

The Covid19 outbreak has affected the lives of billions of people inthis world with over 2.79 million infections and 196,000 deaths as ofApr. 24, 2020. One of the primary modes of human to human transmissionis through droplets from an infected person landing on the hands of ahealthy individual, who in turn touches their face. An effective mode ofdefense against the SARS-Cov2 virus is to thoroughly wash handsregularly before touching one's face.

The World Health Organization (WHO) and Center for Disease Control (CDC)has published guidelines for proper handwashing, which includes sixcomponents (FIG. 1): i) take soap and rub in both the palms, ii) rightpalm over left dorsum with interlaced fingers, iii) left palm over rightdorsum with interlaced fingers, iv) rotational rubbing of right thumbclasped in left palm, v) rotational rubbing of left thumb clasped inright palm, vi) rotational rubbing backwards and forwards while rinsing.The entire duration of hand washing exercise should last for at least 20seconds. Adherence to this protocol is necessary to eliminate the virusfrom ones' hands. However, adhering to these guidelines can be achallenge for many, especially when done frequently throughout the day.

It is with these observations in mind, among others, that variousaspects of the present disclosure were conceived and developed.

BRIEF DESCRIPTION OF THE DRAWINGS

The patent or application file contains at least one drawing executed incolor. Copies of this patent or patent application publication withcolor drawing(s) will be provided by the Office upon request and paymentof the necessary fee.

FIG. 1 is a series of photographs showing WHO/CDC recommended componentsof a compliant handwashing routine;

FIG. 2 is a simplified diagram showing an embodiment of a hand hygienemonitoring system;

FIG. 3 is a simplified block diagram showing an additional view of thesystem of FIG. 2;

FIG. 4 is a diagram showing generation of models for each handwashingroutine component of the system of FIG. 2;

FIG. 5 is a diagram showing identification of handwashing routinecomponents and generation of explanations for missed or improperlycompleted handwashing routine components of the system of FIG. 2;

FIG. 6 is a process flow diagram showing a process for hand hygienemonitoring by the system of FIG. 2;

FIG. 7 is a diagram showing criteria for compliant hand washing data;

FIG. 8 is a diagram showing criteria for non-compliant hand washingdata;

FIGS. 9A and 9B are graphical representations showing examples of RuLSIFresults for compliant hand washing routines; and

FIG. 10 is a simplified diagram showing an exemplary computing systemfor implementation of the system of FIG. 2.

Corresponding reference characters indicate corresponding elements amongthe view of the drawings. The headings used in the figures do not limitthe scope of the claims.

DETAILED DESCRIPTION

Monitoring hand hygiene practices, feedback on hygiene evaluation, andimmediate action are important steps toward protection against a virusthat transmits through droplets such as SARS-Cov2. A proper handwashingroutine, one of the categories of hand hygiene, includes severalcomponents that must be performed in a temporally aligned sequence asrecommended by WHO/CDC. The present system is an armband-based hand washcompliance checking mechanism that can identify if a component of theWHO/CDC recommendations are missing during a hand washing routine. Anappropriate alert mechanism can then inform the user to redo the missingcomponent(s) of the handwashing routine based on a compliance factorprovided by the present system. Tests on data collected from 20subjects, show a ten-fold user-independent accuracy of detectingcompliant hand washing at 88%, precision at 0.89 and recall at 0.85. Thepresent system has been found to identify any missing components inabout 350 out of 500 non-compliant hand wash routines. Referring to thedrawings, embodiments of a system and associated process for handhygiene compliance checking are illustrated and generally indicated as100 and 200 in FIGS. 1-10.

In this disclosure, an armband-based hand hygiene compliance checkingsystem 100 (hereinafter “system”) is disclosed that evaluates usercompliance with WHO/CDC handwashing guidelines. The system 100 furtherincludes an explanation framework to alert a user of a potential reasonfor non-compliance, so that the user can immediately correct themselves.

Challenges

Given that the present WHO/CDC compliant hand washing routine includessix well-defined components, there can still be significant variationsin correct handwashing routines performed by individuals. First, thereis no specific order in which the components must be executed. The firststep, taking soap, and the last step, rinsing, should be fixed, however,the rest of the components can occur in any order. Moreover, there is norestriction on the number of times each component is performed. Hence, auser may perform the same component many times during the hand washingroutine, resulting in potentially infinite ways of following the WHO/CDCguidelines. As such a classification approach that considers compliantand non-compliant hand washing examples and trains a machine to verifycompliance can be cumbersome and also infeasible.

Secondly, in case a user misses a given component of the hand washingroutine, the user should be immediately notified so that the user cancorrect themselves. This necessitates an explainable compliance checkingsystem that can identify the reason a particular handwashing routine isnon-compliant.

Thirdly, the system is intended to scale to many users within afacility. As such it is not feasible to collect training data from eachuser. Hence, the compliance checking system 100 should be userindependent.

Approach

The present system 100 is an armband-based hand hygiene monitoringsystem. In one aspect, the user wears an armband 104 which connects to asmartphone or other computing device 102 via Bluetooth or anothersuitable wireless or wired connection. The armband 104 collects motiondata from onboard sensors 112 when a user is executing the handwashingroutine. The user does not need to continuously wear the armband 104, itis required to be worn when performing a hand washing routine.

To address the challenges mentioned above, the WHO/CDC recommendationsfor a compliant hand washing routine can be interpreted as a language,which can generate an infinite number of compliant hand washingsequences of routine components. Each component of the complianthandwashing routine may be considered a letter in the alphabet of thelanguage described by the WHO/CDC recommendations. The alphabet is theset of all steps in the recommendation. A given hand washing routinethen needs to match a language expressed using a context free grammar.

For the present system, individual component models must first bedeveloped for each component of the compliant hand washing routine. Data171 from a compliant hand washing routine using armband 104 is recordedand then segmented into a plurality of segments of the routine using achange point detection module. Each segment of the plurality of segmentsis then checked against models of all the components of the complianthand washing routine to determine if all components are present in anorder enforced by a grammar (Eq. 1, below). This ensures that the usercan perform all the components any number of times in any sequence. Inthe present embodiment, the system 100 assumes that the first and thesixth components of the routine are fixed, however, in otherembodiments, alternative temporal arrangement of components may berequired.

This component-wise recognition and language-based expression allows thepresent system 100 to identify a potential reason for noncompliance andprovide feedback to the user.

To address the user-independence requirements, the present system 100considers differential features of a given component of a handwashingroutine. The differential feature captures the relative differences inthe alignment of the arms with respect to the first and the sixth stepof the routine.

Results Overview

Compliant and non-compliant hand washing examples were collected from 20users for a total of 1300 samples. The system 100 reached a 10-foldcross-validation accuracy of 88% with a precision of 0.89 and recall of0.85. This is with 60 (12 users)-40 (8 users) train test split amongusers. For non-compliant handwashing routines, the system 100 was ableto identify the missing component in 75% of the instances. Once anon-compliant hand washing routine is detected by the system 100, thesystem 100 then asks the user to redo only the component(s) that wereidentified as missing.

Problem Statement

Each component of the WHO/CDC recommended handwashing routine can bemodeled as a respective letter S_(i), i∈1 . . . 6 in an alphabet Σ. TheWHO/CDC recommendation can be encoded in the following context-freegrammar:

S _(2R) →S ₃ *S ₄ *S ₅ *S ₂ S ₂ *S ₃ *S ₄ *S ₅*

S _(3R) →S ₂ *S ₄ *S ₅ *S ₃ S ₃ *S ₂ *S ₄ *S ₅*

S _(4R) →S ₂ *S ₃ *S ₅ *S ₄ S ₄ *S ₂ *S ₃ *S ₅*

S _(5R) →S ₂ *S ₃ *S ₄ *S ₄ S ₄ *S ₂ *S ₃ *S ₄*

H and Wash→S ₁ S _(2R) S _(3R) S _(4R) S _(5R) S ₆  (1)

Here S_(i)∀i∈{1, 2, 3, 4, 5, 6} are symbols representing each componentof the recommended routine. An asterisk (*) as a superscript on a symboldenotes a Kleene start operation, which means any number of occurrencesof the symbol can occur within the handwashing routine including nooccurrence. HandWash.dur denotes the duration of the hand washingroutine. According to the current WHO/CDC recommendations at the time ofthis filing, HandWash.dur≥20 s.

The system 100 represents each handwashing routine in the form of acontext free grammar, such as the context-free grammar described inEquation 1. The context-free grammar allows concepts or components ofthe routine to be represented in a modular fashion; that is, thedefinition allows flexibility in repetition or order of some componentsof the handwashing routine. Further, the context-free grammar enablescompliance checking of handwashing routines even if the components ofthe routine are repeated, out of order, or have an extended duration.

Problem Statement: Given sets of training samples TS_(i)i∈{1 . . . 6},for each handwashing component Si,

System Input: Test data from a handwashing routine includingaccelerometer data and inertial measurement unit (IMU) data.

System Outputs: 1. Identify whether the test data matches grammar ofEquation 1, 2 that denote an acceptable handwashing routine. If the testdata does not match the acceptable handwashing routine then determinewhich component of the grammar is missing. and 3. Duration of handwash.

System Model

An embodiment of the system 100 is shown in FIGS. 2 and 3. In oneembodiment, the armband 104 is a Myo device, developed by Thalmic Labs.The armband 104 is a band-shaped gesture control device that is worn onan arm of a user. The armband 104 determines the motion of the arm andtransmits a live feed via Bluetooth or another wireless or wiredconnection protocol to a connected device 102 such as a smartphone inorder to access raw EMG and/or IMU data streamed at 200 Hz and 50 Hzrespectively. In one embodiment, the armband 104 includes a plurality ofsensors 112 that include eight surface ElectroMyoGraphy (EMG) sensorsand a highly sensitive 9-axis Inertial Measurement Unit (IMU) sensor 114that includes a 3-axis gyroscope, a 3-axis accelerometer, and a 3-axismagnetometer. In some embodiments, the EMG sensor is not necessary foroperation of the system 100. This is because EMG sensors are currentlynot available in commercial wristbands or smart watches. Hence, if onewants to deploy the system 100 using a commercial wristband orsmartwatch, the system 100 cannot rely exclusively on EMG. The armband104 can include network interface 116 that communicates data to thecomputing device 102 across the network. Referring to FIG. 3, thecomputing device 102 includes a processor 150 in communication with amemory 120 and a network interface 160. The network interface 160receives sensor data from the armband 104 for processing by thecomputing device 102. The memory 120 includes instructions for anoperating system 140 and instructions for execution of a compliancechecking processes/services application 130 corresponding with process200.

In some embodiments, data is recorded from the armband 104 through anassociated data recordation application. In some embodiments, the datarecordation application is Myo Recode. The app collects the data fromthe sensors 112 and stores them in the app folder as five individualtext (.txt) files i.e., EMG.txt, IMU.txt, location.txt, process.txt andservice.txt as shown in FIG. 2.

Compliance Detection

Referring to FIGS. 3-6, the computing system 102 of the system 100includes three modules: a) a compliance definition module 170 includingmodels for each component of the WHO/CDC recommended hand washingroutine, b) a component identification module 180 operable to identifycomponents in a handwashing routine performed by a user based on themodels in the compliance definition module 170, and c) a compliancechecking and feedback module 190.

Modeling Each Component

Referring to FIG. 4, training data examples 171 of compliant handwashingroutines were used to develop the compliance definition module 170. Thestart and end time stamps of each component of the compliant handwashingrouting examples are labeled. Training data including orientation X, Yand accelerometer X, Y data from the armband 104 were considered for theexamples. Differential features are extracted from each complianthandwashing example as shown in FIG. 4. For a given component S_(i), arelative alignment of S_(i) is considered with respect to all othercomponents. The alignment was computed using a Dynamic Time Warping(DTW) distance measure by a DTW module 183. Hence, for each gesturecomponent S_(i) there are five DTW-based alignments from each mode ofsensing. Hence in total there are 20 such alignments, which forms afeature vector for a given handwash component. Such feature vectors areextracted for all components S₂, S₃, S₄, and S₅.

In one implementation, to build a model of one component S_(i) of thecompliant routine, a Support Vector Machine (SVM) 184 is trained withalignment feature vectors for S_(i) as a positive class and alignmentfeature vectors from S_(i), j≠i as a negative class. Each routinecomponent S_(i) is associated with an individual SVM 184 The RadialBasis Function was used as the kernel. To maintain balanced data, if onehad x_(i) number of positive samples for S_(i), the system 100 considersx_(i) number of negative class samples using a uniform distribution. Thetrained SVM 184 encodes a model for a handwash routine component S_(i).In some embodiments, there are a plurality of differential SVM models184A-D for components S₂, S₃, S₄, S₅. In some embodiments, the system100 does not require SVM models of S₁ and S₆ as they are already encodedin the other models, given that they are used as references, howeverother embodiments may have other constraints on handwashing routinecomponent arrangements.

Such differential models enable the system 100 to performuser-independent recognition. The primary reason is that the alignmentoperation using DTW ensures that artifacts related to initialization andorigin shift are negated by the DTW operation.

Identifying Components

For deployment of the system 100, the component identification module180 is shown in FIG. 5 and a corresponding process flow 200 isillustrated in FIG. 6. Referring to block 210 of process 200, given testdata 181 of a handwashing routine captured by sensors 112, the system100 first identifies segments including a number of segments within thetest data 181 using a change point detection module 182. In particular,the change point detection module 182 can include a change pointdetection algorithm such as RuL-SIF, which is a divergence-based changepoint detection algorithm. The change point detection module 182 firstdivides the entire sample into windows. A window size is selected; oneexample window size is 4 seconds, i.e. 200 data points given a 50 Hzsampling ratio of the armband. The window size can be selectedempirically; it was found that on average each component will takearound 4 seconds to complete for a 20 second handwashing routine. Thechange point detection module 182 then computes a Pearson's divergencecoefficient between two consecutive windows. The windows are then slidacross the entire sample, hence obtaining a variation of the Pearson'sDivergence coefficient over time. Peaks in a divergence coefficientindicates that there is a change in the underlying process generatingthe data. The change point detection module 182 extracts peaks from thePearson's Divergence coefficient and the peak locations are consideredto be start and end points of segments of test data 181. Based on thesechange points, the component identification module 180 segments thehandwash test sample.

For this particular application, the system 100 assumes that a firstsegment of the test data 181 corresponds to S₁, i.e. take soap, and thelast segment corresponds to S₆, i.e. rinse. Referring to block 220, thesystem 100 then computes relative DTW alignments of consecutive segmentsat a DTW module 183. The component identification module 180 considersall possible sequences of each segment of the test data 181 bytemporally swapping one segment with another segment. For each temporalcombination of segments, the component identification module 180computes DTW alignments of consecutive segments. Referring to block 230,each handwash sample generates a feature vector of length at-least 120,(4C2×5) assuming that each segment is performed once.

Compliance Checking and Generating Explanation

The compliance checking and feedback module 190 evaluates the segmentsof the test data 181 to ensure that the hand washing routine is incompliance with the recommended hand washing routine. At block 240, thefeature vector for each segment is passed to each of the four SVMcomponent models 184A-D to classify segments of the test data 181 intocomponents of a compliant handwashing routine. In particular, eachtemporal combination of segments is compared against each SVM componentmodel 184 of a compliant routine. Each temporal combination of segmentsis passed through the SVM models 184. Each temporal combination resultsin a 4-tuple of SVM outputs. Hence, for each test handwash routine therewill be at least 24 instances of SVM model outputs. At the end of thisstep, the system 100 obtains at least a 24×4 matrix. At block 250, thecompliance checking and feedback module 190 obtains aggregate resultsfrom the SVM component models 184 to evaluate the SVM outputs Thismatrix is then summed up by the rows to get aggregate results of allcombinations to yield a 1×4 matrix. These are the aggregate outputs ofthe SVM component models 184A-D. The i^(th) element of the matrixsignifies the detection of the i^(th) component.

At block 250, the aggregate outputs of the SVM component models184A-1840 are evaluated to identify a percentage of positive detectionsacross the plurality of temporal combinations of segments. Thepercentage of positive detections for each SVM component model 184 iscompared with a threshold percentage to determine whether thecorresponding component of the compliant routine is sufficiently presentwithin the test data. A threshold of 3% was set, which means that thecomponent S_(i) should be recognized by the SVM model 184 for S_(i) inat least 30% of the temporal combinations. When all SVMs 184 return apositive class, then the compliance checking and feedback module 190considers that the handwashing sample routine is compliant. If at leastone SVM 184 returns a negative result, the compliance checking andfeedback module 190 considers that the hand washing routine isnon-compliant. At block 260, the system 100 compares an aggregationrecognition result for test data 181 with a threshold to identifymissing routine components that do not meet the threshold. If theaggregate recognition results are lower than this threshold for acomponent S_(i), then the compliance checking and feedback module 190considers that that component S_(i) was missing and at block 270 asksthe user to redo that component.

Evaluation

Evaluation of the system 100 has two aims: a) determine the accuracy ofidentification of compliant hand washing routines, and b) determine thecorrectness of the explanation generation mechanism.

Evaluation Metrics

To address evaluation goals there are two sets of metrics. For the firstaim, accuracy, precision, and recall are considered. In the specificapplication of the system 100 discussed herein, it is believed thatprecision is a more important parameter than recall for public safety.It is necessary to reduce false positives i.e. non-compliant handwashing routines classified as compliant. If compliant handwashingroutines are classified as noncompliant, then there is no harm inspending an additional few seconds re-doing the routine.

For the second aim, the evaluation considers among how many instancesthe reason for non-compliance was correctly identified over the totalnumber of non-compliant instances.

Data Collection

Data was collected from 20 subjects including correct and incorrect handwashings. Compliant handwashing is defined as the hand washes that haveall the 6 required step actions performed for approximately 20 secondseither (a) sequentially or (b) in different combination orders withfixed step 1 and step 6 being the start and finish steps. Additionally,the data included correct handwashings lasting for approximately 40seconds, twice the recommended amount of time.

As shown in FIG. 7, in criteria (a), each step action is performed for 4times. In criteria (b), each step action is performed for 4 times havingdifferent sequences of steps keeping the first step 1 and last step 6 atthe start and finish, hence there are 24 different combinations ofhandwashing styles i.e., S_(i), different step orders of S₂, S₃, S₄, S₅,S₆. In criteria (c), every step is performed 7 times.

Non-compliant hand washing is defined as the hand washes that haveperformed for less than 15 seconds having (i) all the required stepssequentially or (ii) either one component/step is missing with differentcombination order of steps and (iii) handwashing that have one missingstep action with different combination order of steps performed for 20seconds. Missing component is between the steps 2 to 5.

As shown in FIG. 8, in criteria (i), every step action is performed 2times. In criteria (ii), every step action is performed 2 times with onemissing component of step and different order sequence of steps keepingthe first step 1 and last step 6 at the start and finish i.e., S₁,missing of S₂ or S₃ or S₄ or S₅ and different step orders non-missingsteps, S₆. In criteria (iii), it is similar fashion as criteria (ii) butevery action is performed 5 or 6 times to get the 20 seconds duration.

Results

Segmentation is an important component of the entire mechanism. RuLSIFchange point detection algorithm was used for segmentation and itsaccuracy was verified on the collected data. RuLSIF was 93% accurate indetermining the change point, which means that out of nearly 8000 changepoints, it identified nearly 7500 change point time stamps. Out of the7,500 time stamps, on an average RuLSIF based segmentation was off by+/−13 samples. This error may have contributed to lower the accuracy ofour mechanism. FIGS. 9A and 9B show an example output of RuISIF basedchange point detection algorithm on the Orientation X axis of acompliant handwash routine.

Ten-fold cross-validation inter-user recognition was performed whileconsidering a 60-40 split of train vs. test data. This implies that 12users were used to train the system and the rest 8 users were used totest. The average accuracy for recognition of compliant hand washingamong the total number of instances was 88%. The mechanism achieved anaverage precision of 0.89, while the recall was 0.85. A higher precisionis an encouraging result since it indicates that false positives arelesser than false negatives.

Intra-user recognition with a 60-40 split was performed. This means thatout of the 65 samples collected from each user, the evaluation included60% data of each user in training and 40% from each user for testing.The accuracy increased to 92% and the precision was 96% while the recallwas 90%. This is expected since performed user dependent analysis wasalso performed. However, the difference in accuracy is only 7% whichindicates that the system 100 was successful in extractinguser-independent characteristics of handwash routines.

For detection of missing components, the evaluation only focused on thenon-compliant handwash routines. Duration of hand wash routine is easyto identify by just checking the number of data points in each routine.Hence, if a non-compliant handwash violates the duration rule, thesystem 100 can identify it 100% of the time. For the handwash routinesthat are more than 20 seconds, the system 100 attempts to identify themissing components. The dataset includes nearly 500 samples ofnon-compliant handwashing routines with one or more missing components.It is assumed that the explanation for non-compliance is successful ifthe system 100 can identify at least one component that is missing. Outof the 500 non-compliant samples the system 100 could correctly identifyat least one missing component in 75% of the samples. The system 100could correctly identify two missing components in 41% of the samples.

Computer-Implemented System

FIG. 10 illustrates an example of a suitable computing and networkingenvironment (computer system 300) which may be used to implement variousaspects of the present disclosure. Example embodiments described hereinmay be implemented at least in part in electronic circuitry; in computerhardware executing firmware and/or software instructions; and/or incombinations thereof. Example embodiments also may be implemented usinga computer program product (e.g., a computer program tangibly ornon-transitorily embodied in a machine-readable medium and includinginstructions for execution by, or to control the operation of, a dataprocessing apparatus, such as, for example, one or more programmableprocessors or computers). A computer program may be written in any formof programming language, including compiled or interpreted languages,and may be deployed in any form, including as a stand-alone program oras a subroutine or other unit suitable for use in a computingenvironment. Also, a computer program can be deployed to be executed onone computer, or to be executed on multiple computers at one site ordistributed across multiple sites and interconnected by a communicationnetwork.

Certain embodiments are described herein as including one or moremodules. Such modules are hardware-implemented, and thus include atleast one tangible unit capable of performing certain operations and maybe configured or arranged in a certain manner. For example, ahardware-implemented module may comprise dedicated circuitry that ispermanently configured (e.g., as a special-purpose processor, such as afield-programmable gate array (FPGA) or an application-specificintegrated circuit (ASIC)) to perform certain operations. Ahardware-implemented module may also comprise programmable circuitry(e.g., as encompassed within a general-purpose processor or otherprogrammable processor) that is temporarily configured by software orfirmware to perform certain operations. In some example embodiments, oneor more computer systems (e.g., a standalone system, a client and/orserver computer system, or a peer-to-peer computer system) or one ormore processors may be configured by software (e.g., an application orapplication portion) as a hardware-implemented module that operates toperform certain operations as described herein.

Accordingly, the term “hardware-implemented module” encompasses atangible entity, be that an entity that is physically constructed,permanently configured (e.g., hardwired), or temporarily configured(e.g., programmed) to operate in a certain manner and/or to performcertain operations described herein. Considering embodiments in whichhardware-implemented modules are temporarily configured (e.g.,programmed), each of the hardware-implemented modules need not beconfigured or instantiated at any one instance in time. For example,where the hardware-implemented modules comprise a general-purposeprocessor configured using software, the general-purpose processor maybe configured as respective different hardware-implemented modules atdifferent times. Software, in the form of the system 100 or process 200or otherwise, may include a hardware-implemented module and mayaccordingly configure a processor 302, for example, to constitute aparticular hardware-implemented module at one instance of time and toconstitute a different hardware-implemented module at a differentinstance of time.

Hardware-implemented modules may provide information to, and/or receiveinformation from, other hardware-implemented modules. Accordingly, thedescribed hardware-implemented modules may be regarded as beingcommunicatively coupled. Where multiple of such hardware-implementedmodules exist contemporaneously, communications may be achieved throughsignal transmission (e.g., over appropriate circuits and buses) thatconnect the hardware-implemented modules. In embodiments in whichmultiple hardware-implemented modules are configured or instantiated atdifferent times, communications between such hardware-implementedmodules may be achieved, for example, through the storage and retrievalof information in memory structures to which the multiplehardware-implemented modules have access. For example, onehardware-implemented module may perform an operation, and may store theoutput of that operation in a memory device to which it iscommunicatively coupled. A further hardware-implemented module may then,at a later time, access the memory device to retrieve and process thestored output. Hardware-implemented modules may also initiatecommunications with input or output devices.

As illustrated, the computing and networking environment 300 may be ageneral purpose computing device 300, although it is contemplated thatthe networking environment 300 may include other computing systems, suchas personal computers, server computers, hand-held or laptop devices,tablet devices, multiprocessor systems, microprocessor-based systems,set top boxes, programmable consumer electronic devices, network PCs,minicomputers, mainframe computers, digital signal processors, statemachines, logic circuitries, distributed computing environments thatinclude any of the above computing systems or devices, and the like.

Components of the general purpose computing device 300 may includevarious hardware components, such as a processing unit 302, a mainmemory 304 (e.g., a memory or a system memory), and a system bus 301that couples various system components of the general purpose computingdevice 300 to the processing unit 302. The system bus 301 may be any ofseveral types of bus structures including a memory bus or memorycontroller, a peripheral bus, and a local bus using any of a variety ofbus architectures. For example, such architectures may include IndustryStandard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus,Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA)local bus, and Peripheral Component Interconnect (PCI) bus also known asMezzanine bus.

The general-purpose computing device 300 may further include a varietyof computer-readable media 307 that includes removable/non-removablemedia and volatile/nonvolatile media but excludes transitory propagatedsignals. Computer-readable media 307 may also include computer storagemedia and communication media. Computer storage media includesremovable/non-removable media and volatile/nonvolatile media implementedin any method or technology for storage of information, such ascomputer-readable instructions, data structures, program modules orother data, such as RAM, ROM, EPSOM, flash memory or other memorytechnology, CD-ROM, digital versatile disks (DVD) or other optical diskstorage, magnetic cassettes, magnetic tape, magnetic disk storage orother magnetic storage devices, or any other medium that may be used tostore the desired information/data and which may be accessed by thegeneral purpose computing device 300. Communication media includescomputer-readable instructions, data structures, program modules, orother data in a modulated data signal such as a carrier wave or othertransport mechanism and includes any information delivery media. Theterm “modulated data signal” means a signal that has one or more of itscharacteristics set or changed in such a manner as to encode informationin the signal. For example, communication media may include wired mediasuch as a wired network or direct-wired connection and wireless mediasuch as acoustic, RF, infrared, and/or other wireless media, or somecombination thereof. Computer-readable media may be embodied as acomputer program product, such as software stored on computer storagemedia.

The main memory 304 includes computer storage media in the form ofvolatile/nonvolatile memory such as read only memory (ROM) and randomaccess memory (RAM). A basic input/output system (BIOS), containing thebasic routines that help to transfer information between elements withinthe general-purpose computing device 300 (e.g., during start-up) istypically stored in ROM. RAM typically contains data and/or programmodules that are immediately accessible to and/or presently beingoperated on by processing unit 302. For example, in one embodiment, datastorage 306 holds an operating system, application programs, and otherprogram modules and program data.

Data storage 306 may also include other removable/non-removable,volatile/nonvolatile computer storage media. For example, data storage306 may be: a hard disk drive that reads from or writes tonon-removable, nonvolatile magnetic media; a magnetic disk drive thatreads from or writes to a removable, nonvolatile magnetic disk; and/oran optical disk drive that reads from or writes to a removable,nonvolatile optical disk such as a CD-ROM or other optical media. Otherremovable/non-removable, volatile/nonvolatile computer storage media mayinclude magnetic tape cassettes, flash memory cards, digital versatiledisks, digital video tape, solid state RAM, solid state ROM, and thelike. The drives and their associated computer storage media providestorage of computer-readable instructions, data structures, programmodules and other data for the general purpose computing device 300.

A user may enter commands and information through a user interface 340or other input devices 345 such as a tablet, electronic digitizer, amicrophone, keyboard, and/or pointing device, commonly referred to asmouse, trackball, or touch pad. Other input devices 345 may include ajoystick, game pad, satellite dish, scanner, or the like. Additionally,voice inputs, gesture inputs (e.g., via hands or fingers), or othernatural user interfaces may also be used with the appropriate inputdevices, such as a microphone, camera, tablet, touch pad, glove, orother sensor. These and other input devices 345 are often connected tothe processing unit 302 through a user interface 340 that is coupled tothe system bus 301, but may be connected by other interface and busstructures, such as a parallel port, game port or a universal serial bus(USB). A monitor 360 or other type of display device is also connectedto the system bus 301 via user interface 340, such as a video interface.The monitor 360 may also be integrated with a touch-screen panel or thelike.

The general purpose computing device 300 may operate in a networked orcloud-computing environment using logical connections of a networkInterface 303 to one or more remote devices, such as a remote computer.The remote computer may be a personal computer, a server, a router, anetwork PC, a peer device or other common network node, and typicallyincludes many or all of the elements described above relative to thegeneral purpose computing device 300. The logical connection may includeone or more local area networks (LAN) and one or more wide area networks(WAN), but may also include other networks. Such networking environmentsare commonplace in offices, enterprise-wide computer networks, intranetsand the Internet.

When used in a networked or cloud-computing environment, the generalpurpose computing device 300 may be connected to a public and/or privatenetwork through the network interface 303. In such embodiments, a modemor other means for establishing communications over the network isconnected to the system bus 301 via the network interface 303 or otherappropriate mechanism. A wireless networking component including aninterface and antenna may be coupled through a suitable device such asan access point or peer computer to a network. In a networkedenvironment, program modules depicted relative to the general purposecomputing device 300, or portions thereof, may be stored in the remotememory storage device.

It should be understood from the foregoing that, while particularembodiments have been illustrated and described, various modificationscan be made thereto without departing from the spirit and scope of theinvention as will be apparent to those skilled in the art. Such changesand modifications are within the scope and teachings of this inventionas defined in the claims appended hereto.

What is claimed is:
 1. A system for monitoring hand washing compliance,comprising: a sensor in communication with a network interface andoperable to capture a set of test data; a computing device incommunication with the sensor, the computing device including aprocessor in communication with a memory, the memory includinginstructions, which, when executed, cause the processor to: segment theset of test data into a plurality of segments using a change pointdetection module; align the plurality of segments of the set of testdata; extract a feature vector representative of a temporal combinationof the plurality of segments; compare the feature vector of the temporalcombination of segments against a component model of a compliantroutine; obtain an aggregate output representative of a positivedetection between the temporal combination of segments and the componentmodel; identify a percentage of positive detections across the pluralityof temporal combinations of the plurality of segments; and compare thepercentage of positive detections with a threshold percentage todetermine whether a corresponding component of the compliant routine issufficiently present in the set of test data.
 2. The system of claim 1,wherein the instructions, when executed, further cause the processor to:identify a component of the compliant routine that is not sufficientlypresent in the set of test data by identifying a component model with alower percentage of positive detection than the threshold percentage. 3.The system of claim 1, wherein the processor is configured to align theplurality of segments of the set of test data using dynamic timewarping.
 4. The system of claim 1, wherein the processor is configuredto represent a handwashing routine in the form of a context-freegrammar.
 5. The system of claim 1, wherein the sensor is an inertialmeasurement unit.
 6. The system of claim 1, wherein the component modelis compared with the feature vector using a support vector machinemodel.
 7. The system of claim 6, wherein the support vector machinemodel is configured to recognize a component of a plurality ofcomponents of the compliant routine.
 8. The system of claim 7, whereinan output of the support vector machine model includes a matrix, whereinthe matrix denotes whether the support vector machine model recognizesthe feature vector as a positive detection of the component of thecompliant routine.
 9. The system of claim 6, wherein the support vectormachine model is trained using a set of training data, wherein the setof training data is of a compliant handwashing routine.
 10. The systemof claim 1, wherein the instructions, when executed, further cause theprocessor to: receive the set of test data from the sensor, wherein theset of test data is of a hand washing routine.
 11. The system of claim1, wherein the instructions, when executed, further cause the processorto: provide a notification denoting that a component of the compliantroutine is not sufficiently present in the test data.
 12. A method formonitoring hand washing compliance, comprising: providing a sensor incommunication with a network interface and operable to capture a set oftest data and a computing device in communication with the sensor, thecomputing device including a processor in communication with a memory:segmenting, by the processor, the set of test data into a plurality ofsegments using a change point detection module; aligning the pluralityof segments of the set of test data; extracting a feature vectorrepresentative of a temporal combination of the plurality of segments ofthe test sample; comparing the feature vector of the temporalcombination of segments against a component model of a compliantroutine; obtaining an aggregate output representative of a positivedetection between the temporal combination of segments and the componentmodel; identifying a percentage of positive detections across theplurality of temporal combinations of the plurality of segments of thetest sample; and comparing the percentage of positive detections with athreshold percentage to determine whether a corresponding component ofthe compliant routine is sufficiently present in the set of test data.13. The method of claim 12, further comprising identifying a componentof the compliant routine that is not sufficiently present in the set oftest data by identifying a component model with a lower percentage ofpositive detection than the threshold percentage.
 14. The method ofclaim 12, wherein the step of aligning the plurality of segments of theset of test data is performed using dynamic time warping.
 15. The systemof claim 12, handwashing routine is represented in the form of acontext-free grammar.
 16. The method of claim 12, wherein the sensor isan inertial measurement unit.
 17. The method of claim 12, wherein thecomponent model is compared with the feature vector using a supportvector machine model.
 18. The method of claim 17, wherein the supportvector machine model is configured to recognize a component of aplurality of components of the compliant routine.
 19. The method ofclaim 18, wherein an output of the support vector machine model includesa matrix, wherein the matrix denotes whether the support vector machinemodel recognizes the feature vector as a positive detection
 20. Themethod of claim 17, wherein the support vector machine model is trainedusing a set of training data, wherein the set of training data is of acompliant hand washing routine.
 21. The method of claim 12, furthercomprising: receiving the set of test data from the sensor, wherein theset of test data is of a hand washing routine.
 22. The method of claim12, further comprising: providing a notification denoting that acomponent of the compliant routine is not sufficiently present in theset of test data.